package com.atguigu.member.service

import com.atguigu.member.dao.DwsMemberDao
import org.apache.spark.sql.SparkSession

/**
 * description ：统计指标 service
 * author      ：剧情再美终是戏 
 * mail        : 13286520398@163.com
 * date        ：Created in 2020/3/6 15:40
 * modified By ：
 * version:    : 1.0
 */
object AdsMemberService {
  /**
   * 使用 api 查询指标
   *
   * @Author 剧情再美终是戏
   * @Date 2020/3/6 15:49
   * @param spark sparkSession
   * @param dt    分区表时间
   * @param dn    区域
   * @return java.lang.Object
   * @Version 1.0
   **/
  def queryDetailByApi(spark: SparkSession, dt: String, dn: String) = {
    // 统计通过各注册跳转地址(appregurl)进行注册的用户数
    DwsMemberDao.queryRegsByAppregurl(spark, dt, dn)
    // 将结果入库 ads_register_appregurlnum

    // 统计各所属网站（sitename）的用户数
    DwsMemberDao.queryUserCountBySiteName(spark, dt, dn)
    // 将结果入库 ads_register_sitenamenum

    // 统计各所属平台的（regsourcename）用户数
    DwsMemberDao.queryUserCountByRegsourceName(spark, dt, dn)
    // 将结果入库 ads_register_regsourcenamenum

    // 统计通过各广告跳转（adname）的用户数
    DwsMemberDao.queryUserCountByAdname(spark, dt, dn)
    // 将结果入库 ads_register_adnamenum

    // 统计各用户级别（memberlevel）的用户数
    DwsMemberDao.queryUserCountByLevel(spark, dt, dn)
    // 将结果入库 ads_register_memberlevelnum


    // 统计各vip等级人数
    DwsMemberDao.queryLevelCountByVipName(spark, dt, dn)
    // 将结果入库 ads_register_viplevelnum

    // 统计各memberlevel等级 支付金额 top 3 的用户
    DwsMemberDao.queryTopNUserByWebsiteAndMemeberLevel(spark, dt, dn, 3)
    // 将结果入库 ads_register_top3memberpay
  }

  /**
   * 使用 spark sql 查询指标
   *
   * @Author 剧情再美终是戏
   * @Date 2020/3/6 15:49
   * @param spark sparkSession
   * @param dt    分区表时间
   * @param dn    区域
   * @return java.lang.Object
   * @Version 1.0
   **/
  def queryDetailBySql(spark: SparkSession, dt: String, dn: String) = {
    // 统计通过各注册跳转地址(appregurl)进行注册的用户数
    // 统计各所属网站（sitename）的用户数
    // 统计各所属平台的（regsourcename）用户数
    // 统计通过各广告跳转（adname）的用户数
    // 统计各用户级别（memberlevel）的用户数
    // 统计各vip等级人数
    // 统计各memberlevel等级 支付金额 top 3 的用户
  }
}
